home *** CD-ROM | disk | FTP | other *** search
-
- ; Commentary.fm (c)1999 Richard Gordon Faika
-
- ; Fügt ein Kommentarzeichen (das Semikolon), z.Bsp. für Assembler,
- ; an den Anfang des zu filternden Textstrings ein.
-
- ; --------------------------------------------------------------------
- ; Parameter holen
- ; --------------------------------------------------------------------
- move 4(sp),d0 ; Funktionsnummer holen
- move.l 6(sp),a0 ; Adresse Textstring holen
- move.l 10(sp),a1 ; Adresse Arbeitspuffer holen
- move 14(sp),d1 ; Länge String holen
- ;move 16(sp),d2 ; Länge Abeitspuffer
-
- tst d0 ; Filtern?
- beq filter
-
- cmpi #1,d0
- bne case1
- bra GetInfo ; Info
- case1:
- cmpi #2,d0
- bne case2
- bra ModInit ; Init
- case2:
- cmpi #3,d0
- bne noFunc
- bra ModExit ; Exit
-
- ModInit:
- clr.l d0 ; es gibt nix zu Initialisieren
- rts
- ModExit:
- clr.l d0 ; es gibt auch nix zu De-Initialisieren
- rts
-
- GetInfo: lea.l info(pc),a0 ; Zeiger auf Infotext zurück.
- move.l a0,d0
- rts
-
- noFunc: moveq.l #-32,d0
- rts
-
-
-
- ; --------------------------------------------------------------------
- ; Filterroutine
- ; --------------------------------------------------------------------
-
- filter: tst d1 ; Stringlänge testen
- beq exit0 ; wenn Null, nichts machen
-
- move.b #';',(a1)+ ; Kommentar einfügen
-
- ; restlichen Text kopieren
-
- lsr #1,d1 ; /2
- bcc.b go2 ; glatt teilbar?
- move.b (a0)+,(a1)+ ; nein, dann erstes Zeichen
- go2:
- lsr #1,d1 ; /2
- bcc go_all ; glatt teilbar?
- bra go24 ; nein, dann erst zwei Zeichen
- go4:
- move.b (a0)+,(a1)+
- move.b (a0)+,(a1)+
- go24:
- move.b (a0)+,(a1)+
- move.b (a0)+,(a1)+
- go_all:
- dbra d1,go4 ; immer 4 in einem Rutsch
-
-
-
- clr.b (a1) ; String Nullterminieren
- exit: move.l #1,d0 ; 0 = OK
- rts
- exit0: clr.l d0
- rts
-
-
-
- workbuf: dc.l 0
- info: dc.b ' Commentary',0 ; Modulinfo für Popup, max. 24 Zeichen+Nullbyte
- dc.b 'Richard Gordon Faika',0 ; Autorenname, max. 20 Zeichen+Nullbyte
- dc.b 'DAS MODUL FÜGT DEM SELEKTIERTEN TEXT',0 ; max. 40 Zeichen+Nullbyte
- dc.b 'EIN SEMIKOLON ZU TEXTANFANG EIN UND',0 ; max. 40 Zeichen ""
- dc.b 'KOMMENTIERT SOMIT Z.BSP. TEXTE IN EINEM',0 ; max. 40 Zeichen ""
- dc.b 'ASSEMBLERSOURCECODE.',0 ; max. 40 Zeichen ""
-